/**
 * 
 */
package com.shifan.phone.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.shifan.phone.common.Tools;
import com.shifan.phone.dao.ProductImageModelMapper;
import com.shifan.phone.dao.ShoppingCarModelMapper;
import com.shifan.phone.model.ProductImageModel;
import com.shifan.phone.model.ShoppingCarModel;
import com.shifan.phone.service.ShoppingCarModelService;

/**
 * 
 * @author TangLei
 * @date 2018年12月15日 下午12:00:58
 * @version 1.0
 */
@Service
public class ShoppingCarModelServiceImpl implements ShoppingCarModelService{
	//注入购物车Dao接口
	@Resource
	ShoppingCarModelMapper shoppingCarModelDao;
	//注入产品图片Dao接口
	@Resource
	ProductImageModelMapper productImageModelDao;
	
	/**
	 * 删除
	 * @param shoppingcarId 购物车ID
	 * @return 影响的行数
	 */
	@Override
	public int deleteByPrimaryKey(String shoppingcarId) {
		// 调用购物车Dao的删除的方法
		return shoppingCarModelDao.deleteByPrimaryKey(shoppingcarId);
	}

	/**
	 * 增加（一次性增加所有字段）
	 * @param record 购物车对象
	 * @return 影响的行数
	 */
	@Override
	public int insert(ShoppingCarModel record) {
		//得到一个随机数
		String shoppingcarId = Tools.getRandomString();
		//给购物车ID赋值
		record.setShoppingcarId(shoppingcarId);
		//给购物车日期赋值
		record.setShoppingcarDate(Tools.getCurDate());
		// 调用购物车Dao的增加的方法
		return shoppingCarModelDao.insert(record);
	}

	/**
	 * 增加（增加一个或多个字段）
	 * @param record 购物车对象
	 * @return 影响的行数
	 */
	@Override
	public int insertSelective(ShoppingCarModel record) {
		//得到一个随机数
		String shoppingcarId = Tools.getRandomString();
		//给购物车ID赋值
		record.setShoppingcarId(shoppingcarId);
		//给购物车日期赋值
		record.setShoppingcarDate(Tools.getCurDate());
		// 调用购物车Dao的增加的方法
		return shoppingCarModelDao.insertSelective(record);
	}

	/**
	 * 根据ID查询
	 * @param shoppingcarId 购物车ID
	 * @return 购物车对象
	 */
	@Override
	public ShoppingCarModel selectByPrimaryKey(String shoppingcarId) {
		// 调用购物车Dao接口的根据ID查询得方法
		return shoppingCarModelDao.selectByPrimaryKey(shoppingcarId);
	}

	/**
	 * 修改（修改一个或多个字段）
	 * @param record 购物车对象
	 * @return 影响的行数
	 */
	@Override
	public int updateByPrimaryKeySelective(ShoppingCarModel record) {
		// 调用购物车Dao接口的修改的方法
		return shoppingCarModelDao.updateByPrimaryKeySelective(record);
	}

	/**
	 * 修改（一次性修改所有字段）
	 * @param record 购物车对象
	 * @return 影响的行数
	 */
	@Override
	public int updateByPrimaryKey(ShoppingCarModel record) {
		// 调用购物车Dao接口的修改的方法
		return shoppingCarModelDao.updateByPrimaryKey(record);
	}

	/**
	 * 查询所有
	 * @param userId 用户ID
	 * @return 购物车对象集合
	 */
	@Override
	public List<ShoppingCarModel> findAll(String userId) {
		// 调用购物车Dao接口的查询所有的方法
		List<ShoppingCarModel> list = shoppingCarModelDao.findAll(userId);
		//循环遍历集合
		for(ShoppingCarModel shoppingCar:list){
			//创建一个图片对象
			ProductImageModel productImage = new ProductImageModel();
			//给图片对象的产品ID赋值
			productImage.setProId(shoppingCar.getProId());
			//给图片对象的类型赋值
			productImage.setImgType(1);
			//调用产品图片Dao接口的根据产品查询的方法
			ProductImageModel productImages = productImageModelDao.findProIdAndType(productImage);
			//判断图片对象是否为null
			if(!Tools.isEmpty(productImages)){
				//给购物车对象的图片地址赋值
				shoppingCar.setImgPath(productImages.getImgPath());
			}
		}
		return list;
	}

}
